package iface

import (
	"reflect"
)

type ListableBeanFactory interface {
	BeanFactory
	SingletonBeanRegistry

	GetBeanNamesForType(refType reflect.Type) []string

	AddBeanPostProcessor(beanPostProcessor BeanPostProcessor)

	AddBeanPostProcessors(beanPostProcessors []BeanPostProcessor)

	GetBeanDefinition(beanName string) (error, BeanDefinition)

	GetBeanDefinitionNames() []string

	ContainsBeanDefinition(beanName string) bool

	ContainsLocalBean(beanName string) bool
}
